package com.geek.javase.ch18.videodemo.pattern.decoration;

/*
 *@Date 2025/11/6
 *@Author wangpeng
 *@Description
 * 装饰模式：在不改变原来的类的基础上，动态的扩展一个类。
 *
 * 实现思想：
 * 1.创建一个新的类，装饰类
 * 2.装饰类来包装原始类，从而提升原始类的功能
 * 典型代表:IO流的设计思想
 *
 * 使用步骤：
 * 1.定义父类  例如：InputStream
 * 2.定义原始类，继承父类，重写功能  例如：FileInputStream、ByteArrayInputStream
 * 3.定义装饰类，继承父类，包装原始类，增强功能  例如：BufferedInputStream
 */
public class Test {
    public static void main(String[] args) {
        //基于文件进行读操作
        BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream());
        bis1.read();

        //基于内存进行读操作
        BufferedInputStream bis2 = new BufferedInputStream(new ByteArrayInputStream());
        bis2.read();
    }

}
